Adaptive snapping

ABSTRACT

A computer implemented method, apparatus, system, article of manufacture, and computer readable storage medium provide the ability to position/manipulate an object in a computer drawing application. A drawing model having a snap option and a first zoom level is displayed. The snap option that enables a positioning of an object in alignment with grid lines by causing the object to automatically jump to an exact position when the object is moved to within a first snap distance of the exact position. A zoom operation changes the first zoom level to a second zoom level. Automatically, dynamically, and independently from additional user actions, the first snap distance is recalculated based on the second zoom level.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to computer graphics drawingapplications, and in particular, to a method, apparatus, and article ofmanufacture for automatically and dynamically adjusting a snapincrement.

2. Description of the Related Art

When working in a drawing/drafting application (e.g., a computer aideddesign [CAD]), users often want to place or draw objects at specificlocations or of specific sizes. To assist in such drawing/drafting, manyapplications provide and display a grid consisting of a network ofuniformly spaced horizontal and perpendicular lines. Such applicationsmay then provide for snapping that allows an object to be easilypositioned in alignment with grid lines, guide lines, or another object,by causing it to automatically jump to an exact position when the userdrags it to the proximity of the desired location. A snap can beassociated with a grid such that when placing or drawing an object, theobject/geometry snaps to a particular vertex of the grid, therebycreating lines/objects that are both in a desired direction (e.g., ageometrically straight line) and of a desired distance (e.g., bysnapping in exact increments). However, setting up and working with thegrid and snap is often a manual process. Further, when zooming in/andout of a drawing, the prior art fails to provide a mechanism foradjusting the snap. Such problems may be more easily understood with anexplanation of prior art snapping methodologies.

Prior art applications currently provide a standard (default) snapdistance or grid size, and allow users to set or adjust the snapdistance to aid drawing and modifying designs with precision. Settingand modifying the snap setting is a manual process:

-   -   Users have no indication of the size of a design and what units        the design is in while they are working on the model;    -   Depending on the size of a design the user must change the snap        to an appropriate increment;    -   Depending on the unit system, inches or mm for example, the user        must change the snap to an appropriate increment;    -   Depending on how far in or out a design is viewed (zoom factor),        different snap values are appropriate; and    -   Users often need to leave the design window in order to simply        view what the snap increment is.

Manual changes to a snap increment requires that the user understandwhere the snap settings are stored, how to make changes, and to knowwhat an appropriate snap value should be. For new users or occasionalusers this can be a difficult process. For experienced users this cantake time and focus away from the primary task of creating or modifyingthe design.

To more fully understand grids and snapping, an example is useful. Adesigner/architect may be drawing a line that must be of a specificlength (e.g., a house must be exactly 8.5 feet or an engine block for acar must be 36 inches or 45 mm). Accordingly, as a design and drawing ismodified, a certain amount of precision and scale is required for thedesign to be accurate. Prior art techniques allow the user to set a gridsnap that defines the grid and snap distance that allows the user tosnap the line to a grid vertex thereby establishing a defined distancerather than a line being infinitely variable in length. For example, asa line is drawn, it snaps to an increment. If the increment is 1 inch,the line being drawn will have a length that progresses from 1 inch, to2 inches, to 3 inches, etc., up to the desired amount.

Problems arise in the prior art when users are working in the samedrawing at different levels of zoom. For example, users may often beworking with one line that is 2 mm long (e.g., when working with amobile phone circuit) and another line that is 2 miles long (e.g., whenworking with a construction site or satellite design). In such asituation, the user is required to change the snap settings often byzooming in, manually changing the grid snap (e.g., to mm), then zoomingout and changing the grid snap once again (e.g., back to miles). Suchprior art solutions force users to spend an inordinate amount of timeconfiguring software options to obtain logical behavior for snapping atvarious levels of zoom. Further, when designers require accurate/exactmeasurements, the prior art forces users to undertake complex manualoperations.

Some prior art methods may provide an adaptive grid that readjusts sothat the grid is not overly dense when a user zooms in/out. However,what such a technology provides is merely a visual adjustment thatrefrains from drawing lines when the lines begin to blend togetherduring a zoom operation (e.g., as the user zooms out, lines appearcloser together and more dense). Further, such a prior art mechanismdoes not affect the snap distance previously established by the user. Inthis regard, even when the user zooms out, although the displayed gridmay be rendered differently (e.g., by not displaying every third line ordisplaying less horizontal/perpendicular lines), the smaller unit usedfor the snapping is unchanged. Instead, the user must manually modifythe snap to match up with the new grid spacing which further requiresuser knowledge of the exact grid spacing.

Alternative prior art systems may utilize legends, rulers, or scales toindicate the mapping/ratio between the distance in the drawing and areal world distance. A user may adjust a snap or grid value bymodifying/dragging drag handles on the ruler/legend. In someembodiments, such legends/rulers/scales get smaller and smaller as theuser zooms out. Alternatively, such a legend/ruler/scale may update withthe zoom level. However, such an autoscaling legend/ruler/scale does notaffect the user established grid/snap distance. Instead, the settingremains the same regardless of the level of zoom and the user isrequired to manually adjust the snap value if desired.

Alternative prior art systems provide for geographic mapping systems.Such systems allow the user to zoom in on a certain area of a map.However, such mapping systems merely load flat maps and provide theability to zoom in and out. Mapping systems do not provide the abilityfor users to draw on the maps or snap when drawing a line or object.Further, such prior art methods merely load flat maps and are notworking on the same drawing file.

Again, prior art systems fail to provide a mechanism that automaticallyand dynamically adjusts the snap/grid distance based on the user'sdesired work attributes. Instead, users are required to manually set asnap value through dialog boxes each time the user desires to change thesnap distance. Accordingly, the user is required to move away from thedesigning area to change the snap distance. What is needed is anautomated and efficient mechanism for adjusting the snap distance basedon the user's desired viewing/work attributes in a dynamic manner.

SUMMARY OF THE INVENTION

One or more embodiments of the invention provide for an adaptive snapthat automatically and dynamically adjusts a current snap incrementvalue when a user adjusts the level of zoom (i.e., the zoom factor). Inaddition, an interactive snap legend allows the user to view andmanipulate information about the snap increment value, the scale of themodel at the current zoom level, the current units of a model, and theability to change the units. Since a relationship exists between all ofthe elements in the interactive legend and the physical pixel spacebeing used in a model, adjustment of one attribute may result in theautomatic and dynamic adjustment (in real time) of other attributes. Forexample, if the unit system is changed, the scale of the model and theavailable increment values may change accordingly. Further, if the userzooms out/in, the scale may also change while maintaining the actualscreen/pixel distance established for the snap/grid.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the drawings in which like reference numbers representcorresponding parts throughout:

FIG. 1 is an exemplary hardware and software environment used toimplement one or more embodiments of the invention;

FIG. 2 illustrates an in-3D window display with a current unit systemand provides an accurate representation of a unit scale relative to amodel on the screen in accordance with one or more embodiments of theinvention;

FIG. 3 illustrates the result of adjusting a unit system in accordancewith one or more embodiments of the invention;

FIGS. 4 and 5 illustrate the effect of zooming out and a dynamicallychanging snap value and scale in accordance with one or more embodimentsof the invention;

FIG. 6 illustrates the logical flow for positioning/manipulating anobject in accordance with one or more embodiments of the invention; and

FIG. 7 illustrates the logical flow for calculating a new snap distancein accordance with one or more embodiments of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In the following description, reference is made to the accompanyingdrawings which form a part hereof, and which is shown, by way ofillustration, several embodiments of the present invention. It isunderstood that other embodiments may be utilized and structural changesmay be made without departing from the scope of the present invention.

Overview

One or more embodiments overcome the problems of the prior art andprovide an adaptive snap that alleviates the user's need to adjust snapvalues. The adaptive snap adjusts depending on the user's interactionwith the design.

Hardware Environment

FIG. 1 is an exemplary hardware and software environment 100 used toimplement one or more embodiments of the invention. The hardware andsoftware environment includes a computer 102 and may includeperipherals. Computer 102 may be a user/client computer, servercomputer, or may be a database computer. The computer 102 comprises ageneral purpose hardware processor 104A and/or a special purposehardware processor 104B (hereinafter alternatively collectively referredto as processor 104) and a memory 106, such as random access memory(RAM). The computer 102 may be coupled to other devices, includinginput/output (I/O) devices such as a keyboard 114, a cursor controldevice 116 (e.g., a mouse, a pointing device, pen and tablet, etc.) anda printer 128.

In one embodiment, the computer 102 operates by the general purposeprocessor 104A performing instructions defined by the computer program110 under control of an operating system 108. The computer program 110and/or the operating system 108 may be stored in the memory 106 and mayinterface with the user and/or other devices to accept input andcommands and, based on such input and commands and the instructionsdefined by the computer program 110 and operating system 108 to provideoutput and results.

Output/results may be presented on the display 122 or provided toanother device for presentation or further processing or action. In oneembodiment, the display 122 comprises a liquid crystal display (LCD)having a plurality of separately addressable liquid crystals. Eachliquid crystal of the display 122 changes to an opaque or translucentstate to form a part of the image on the display in response to the dataor information generated by the processor 104 from the application ofthe instructions of the computer program 110 and/or operating system 108to the input and commands. The image may be provided through a graphicaluser interface (GUI) module 118A. Although the GUI module 118A isdepicted as a separate module, the instructions performing the GUIfunctions can be resident or distributed in the operating system 108,the computer program 110, or implemented with special purpose memory andprocessors.

Some or all of the operations performed by the computer 102 according tothe computer program 110 instructions may be implemented in a specialpurpose processor 104B. In this embodiment, the some or all of thecomputer program 110 instructions may be implemented via firmwareinstructions stored in a read only memory (ROM), a programmable readonly memory (PROM) or flash memory within the special purpose processor104B or in memory 106. The special purpose processor 104B may also behardwired through circuit design to perform some or all of theoperations to implement the present invention. Further, the specialpurpose processor 104B may be a hybrid processor, which includesdedicated circuitry for performing a subset of functions, and othercircuits for performing more general functions such as responding tocomputer program instructions. In one embodiment, the special purposeprocessor is an application specific integrated circuit (ASIC).

The computer 102 may also implement a compiler 112 which allows anapplication program 110 written in a programming language such as COBOL,Pascal, C++, FORTRAN, or other language to be translated into processor104 readable code. After completion, the application or computer program110 accesses and manipulates data accepted from I/O devices and storedin the memory 106 of the computer 102 using the relationships and logicthat was generated using the compiler 112.

The computer 102 also optionally comprises an external communicationdevice such as a modem, satellite link, Ethernet card, or other devicefor accepting input from and providing output to other computers.

In one embodiment, instructions implementing the operating system 108,the computer program 110, and the compiler 112 are tangibly embodied ina computer-readable medium, e.g., data storage device 120, which couldinclude one or more fixed or removable data storage devices, such as azip drive, floppy disc drive 124, hard drive, CD-ROM drive, tape drive,etc. Further, the operating system 108 and the computer program 110 arecomprised of computer program instructions which, when accessed, readand executed by the computer 102, causes the computer 102 to perform thesteps necessary to implement and/or use the present invention or to loadthe program of instructions into a memory, thus creating a specialpurpose data structure causing the computer to operate as a speciallyprogrammed computer executing the method steps described herein.Computer program 110 and/or operating instructions may also be tangiblyembodied in memory 106 and/or data communications devices 130, therebymaking a computer program product or article of manufacture according tothe invention. As such, the terms “article of manufacture,” “programstorage device” and “computer program product” as used herein areintended to encompass a computer program accessible from any computerreadable device or media.

Of course, those skilled in the art will recognize that any combinationof the above components, or any number of different components,peripherals, and other devices, may be used with the computer 102.

Although the term “user computer” or “client computer” is referred toherein, it is understood that a user computer 102 may include portabledevices such as cell phones, notebook computers, pocket computers, orany other device with suitable processing, communication, andinput/output capability.

Software Embodiments

One or more embodiments of the invention may be implemented in computerprogram 110 as a computer graphics program. To overcome the problems ofthe prior art, such a program 110 enables an adaptive snap thatalleviates the user's need to adjust snap values. The adaptive snap willautomatically adjust such that when a user zooms in, the snap willswitch to smaller snap increments and when the user zooms out, the snapwill switch to larger snap increments. Such auto snapping is performedautomatically and dynamically without additional user action required toupdate the snap increment. Further, the snap increment is adjusted on abasis that is appropriate to the context in which work is beingperformed. In other words, the snap increment is appropriate for thesize and task that the user is performing without the user manuallyadjusting the snap increment.

One may note that users commonly utilize and/or desire a particularphysical screen distance for utilization of a snap value (e.g., ½ thumbwidth). Such a desirable distance on a physical screen remains the sameregardless of whether the snap increment represents 1 mm or 1 mile.However, as described above, when a user zooms in or out, the user stilldesires to utilize the same physical screen distance as a snap incrementwhile having such a snap increment represent a different measurementvalue. For example, a user may desire a ½ thumb width physical screendistance to represent 3-4 feet when working on a space shuttle drawingwhile only ¼ of an inch on a cell phone drawing. Prior art software onlyutilizes a single snap value with a single unit system and a singlenumerical value. To adjust the snap value, the prior art requires theuser to manually adjust a series of configurations. Embodiments of thepresent invention provide the ability to automatically adjust a snapvalue that is relevant to the particular user's context.

FIG. 2 illustrates an in-3D window display with the current unit systemand provides an accurate representation of the unit scale relative tothe model on the screen in accordance with one or more embodiments ofthe invention. As illustrated the GUI 118 contains the model/image 200being edited/manipulated by the user. The current unit system 202 isillustrated as centimeters (cm). The scale for the model in the currentview 204 illustrates the different increments from 0 to 0.5 to 1 thatmay be selected by the user. Such a scale 204 is based on and integratedwith the current unit system 202 and will change based on the unitsystem 202. The different potential options are illustrated with hashmarks with each hash mark representing a 0.1 increment for a base 10metric unit of measure (that is based on the current centimeter unitsystem 202). The current snap value increment may be adjusted (e.g., bythe user) using the slider 206 with the currently selected valueindicated in textually at 208. As illustrated, the width of the model200 is 2 cm at the current zoom level and in the current units 202.Thus, the user can directly alter the snap by adjusting the unit system202 and slider 206.

The adaptive snap feature provides that when the user is working withlarge models, larger snap values are used and when working with smallermodels, smaller snap values will be used. Further, working with metricunits (e.g., millimeters) will use snaps in increments of tenths andworking with Impirical/United States customary units (e.g., inches) willuse snaps in increments of quarters, eighths, sixteenths, andthirty-seconds. Accordingly, embodiments adjust the snap value based onmodel size, view zoom, and the unit system 202.

FIG. 3 illustrates the result of adjusting the unit system 202 inaccordance with one or more embodiments of the invention. Asillustrated, the current unit system 302 in FIG. 3 is set to anImpirical/United States customary unit with inches (in). Options for thedifferent unit systems may include yards (yd), millimeters (mm), um(micrometer), mil, meters (m), inches (in), feet (ft), centimeters (cm),miles (mi), etc. Further, the available options may be presented to theuser when the user clicks on the unit system 202/302. Such apresentation may be in the form of a list (that may be sorted e.g., fromshortest to longest distances across the different units). Once the userchanges the unit system (e.g., from centimeters 202 to inches 302), thesnap value 208 automatically updates to the new unit 308 and this newvalue 308 is used during any further actions (e.g., extrusion, drawing,etc.). Thus, as illustrated, the snap scale changes from 0-1 mm to 0-0.4inches. Further, the current snap value automatically changes to 0.2inches to reflect a corresponding and desired snap value selection thathas been rounded accordingly. In addition, the snap increments maychange. FIG. 3 illustrates a change in the snap increments to ⅛ths whichare used in the Impirical/United States customary system.

Once a given snap value 208/308 has been selected, when performing adrawing operation (e.g., extruding a shape, drawing a line, etc.), theshape will automatically snap in increments of the specified value208/308. Thus, in FIG. 2, a user drawing a line in model 200 willextend/retract a line in increments of 0.5 cm. Similarly, while drawinga line in the model 200 of FIG. 3, the line will be extended/retractedin increments of 0.2 inches. Thus, if the user were to examine ameasurement or textual representation of the length of an extrusion orline that is being drawn using the snap value 308 of FIG. 3, one maynote that the value increases/decreases in increments of 0.2. Suchcalculations and displays are performed dynamically and automatically asthe user is performing an operation.

The snap value 208/308 and scale 204/304 that is used (and displayed) isbased on the current level of zoom of the model 200. Referring again toFIG. 2, the current zoom level is established and the snap value 208 isset at 0.5 cm. As the user utilizes a different zoom level, the snapvalue 208 and scale 204 will automatically update to a different valueand scale based on the zoom level. FIGS. 4 and 5 illustrate the effectof zooming out and a dynamically changing snap value 408/508 and scale404/504 in accordance with one or more embodiments of the invention. Asthe user zooms out of the model 200 (i.e., the cube decreases in size asthe user zooms out), the snap value will dynamically change (in realtime as the user performs the zoom operation) to 0.7 (value 408 of FIG.4) to 0.9, to 1.0 (value 508 of FIG. 5). Similarly, the scale willchange from a max of 1 cm in scale 202 to 1.4 of scale 404, to 2.0 ofscale 504.

Based on the above, it can be seen that when zooming out, it would bedesirable to automatically increase (i.e., independently from andwithout additional user action) the current snap value 208-508 to enablethe user to work in the now zoomed out model 200 using a desirablephysical screen spacing (as the increment space) as established usingthe slider 206. Accordingly, once zoomed out as in FIG. 5, anymodification of the model 200 (e.g., an extrusion of the cube) would beperformed based on the 1.0 current snap value 508 that was automaticallyand dynamically established by the user.

In view of the above description, it can be seen that the inventionenables numerous features/advantages including:

-   -   Automatic snapping without user intervention    -   An in-3D window heads up display showing:        -   the current unit system;        -   an accurate representation of unit scale relative to the            model on the screen;        -   the current snap value;    -   Facility to alter the snap value easily through the in-screen        heads up display; and    -   Facility to alter the units easily through the in-screen heads        up display.        Such a heads-up display allows the user to modify all of the        above in one area without multiple independent actions.

Logical Flow

FIG. 6 illustrates the logical flow for positioning/manipulating anobject in accordance with one or more embodiments of the invention. Atstep 600, a drawing model is displayed on a display device. The drawingmodel has a snap option that enables a positioning of an object inalignment with grid lines by causing the object to automatically jump toan exact position when the object is moved to within a first snapdistance (i.e., the current snap value) of the exact position. As usedherein, such positioning also applies to the creation of an object orthe modification of such an object. In this regard, the term“positioning” includes the modification of an object such as byextruding a surface or extending/drawing a line. In addition, thedrawing model has a defined first zoom level.

Optional step 602 provides the ability to display and use an interactivesnap legend (e.g., as illustrated in FIGS. 3-5). Such a snap legendgraphically indicates the first snap distance (e.g., the current snapvalue 308/408/508), available options for alternative first snapdistances (e.g., the hatch markings), and an interactive modifier (e.g.,the slider 206 for adjusting the snap value 308/408/508) that modifiesthe first snap distance in response to user input. To use theinteractive snap legend, the first snap distance (e.g., the current snapvalue 308/408/508) is modified in response to user input using theinteractive modifier 206. Details relating to the use of the interactivelegend are described in detail below with respect to FIG. 7.

At step 604, a zoom operation is conducted that changes the first zoomlevel to a second zoom level. In other words, the user zooms in to orout of the model 200.

At step 606, the first snap distance recalculated based on the secondzoom level. Such a recalculation is performed automatically,dynamically, and independently from (e.g., without) additional useractions. Thus, when a user performs a zoom operation, the system mayautomatically adjust the current snap value 308/408/508 based on the newzoom level. To recalculate the current snap value, the current snapvalue is converted into a fixed number of pixels (i.e., the actualphysical pixel space is measured to determine the user's desiredphysical screen/pixel distance for a snap increment). The amount of thezoom operation is then compared to the screen/pixel distance todetermine a new snap distance to be used with the new zoom level. Theavailable snap options (e.g., snap distance increments) may be adjustedas well as the actual current snap value 308/408/508. Further detailsrelating to such calculations are discussed with respect to FIG. 7.

FIG. 7 illustrates the logical flow for calculating a new snap distancein accordance with one or more embodiments of the invention. At step700, the first snap distance is converted into a fixed number of pixels(i.e., the actual physical screen space selected by a user as a snapincrement/value).

At step 702, a first real world distance (of the drawing model) isdetermined based on the first zoom level. As noted above, availableoptions for the alternative snap distances (e.g., the scale, differenthatch patterns, and available snap values) are based on the first realworld distance. Such a first real world distance essentiallyprovides/defines a real world size for the extent of what is displayed.Such a first real world distance may be calculated/determined based on athree-dimensional (3D) world space position of a viewpoint within thedrawing model and a field of view of the viewpoint. In such animplementation, one may imagine a camera placed into a 3D scene. Thelocation and field of view of the camera (i.e., the camera's perspectiveof the 3D scene) is used to determine the real world distance for thescene being viewed.

At step 704, a ratio is calculated. The ratio is the fixed number ofpixels to the first real world distance. This ratio establishes therelationship between the real world size to what is displayed on thedisplay device.

At step 706, a second real world distance is determined based on thenew/second zoom level. It may be noted that the recalculation of thefirst snap distance (i.e., of the current snap value) is based on thissecond real world distance and the ratio. In other words, once the ratiohas been defined, the application can easily recalculate the new currentsnap value (i.e., the first snap distance) based on the amount of zoomapplied and utilizing the ratio to perform the calculation. Inembodiments of the invention, actual physical screen distance (i.e.,number of pixels that is used to define the snap increment) does notchange. Instead, actual screen distance remains the same (orrelatively/approximately the same) while the current snap value andscale changes. Accordingly, the user's desired physical screen distance(e.g., ½ thumb width) is always utilized regardless of the zoom leveland unit of measure.

In addition, the recalculated first snap distance (i.e., the currentsnap value) may be rounded to a logical value based on the second realworld distance. In this regard, it is desirable to have rounded numberscompared to infinite or numbers with multiple decimals. For example, itis undesirable to have a current snap value of 21.11111. Instead, thenumber would be rounded to 21 (or 21.1 or to a number having a specifiednumber of decimals). Further, the rounding will take the snap value asdetermined in real-world units and round the number to a value thatmakes sense for the unit system and the current zoom level. For example,if the real world distance (i.e., unit system) is a metric unit ofmeasure, the recalculated snap distance may be rounded to logical valuesthat are base 10. Alternatively, if the second real world distance is aninch based unit of measure (e.g., Impirical/United States customaryunits), the recalculated snap distance may be rounded logical valuesthat are divided into eight (8) segments. Thus, the snap distance islogical depending on both the zoom factor/level, unit system, and realworld distance of the scene.

CONCLUSION

This concludes the description of the preferred embodiment of theinvention. The following describes some alternative embodiments foraccomplishing the present invention. For example, any type of computer,such as a mainframe, minicomputer, or personal computer, or computerconfiguration, such as a timesharing mainframe, local area network, orstandalone personal computer, could be used with the present invention.

The foregoing description of the preferred embodiment of the inventionhas been presented for the purposes of illustration and description. Itis not intended to be exhaustive or to limit the invention to theprecise form disclosed. Many modifications and variations are possiblein light of the above teaching. It is intended that the scope of theinvention be limited not by this detailed description, but rather by theclaims appended hereto.

1. A computer implemented method for positioning an object in a computer drawing application comprising: (a) displaying, on a display device using a computer processor executing the computer drawing application, a drawing model, wherein: (i) the drawing model comprises a snap option; (ii) the snap option enables a positioning of an object in alignment with grid lines by causing the object to automatically jump to an exact position when the object is moved to within a first snap distance of the exact position; and (iii) the drawing model comprises a first zoom level; (b) conducting, using a computer processor executing the computer drawing application, a zoom operation that changes the first zoom level to a second zoom level; and (c) automatically, dynamically, and independently from additional user actions, recalculating the first snap distance based on the second zoom level.
 2. The computer implemented method of claim 1, further comprising: (a) displaying, in the drawing model, an interactive snap legend that graphically indicates: (i) the first snap distance; (ii) available options for alternative first snap distances; and (iii) an interactive modifier that modifies the first snap distance in response to user input; and (b) modifying the first snap distance in response to user input using the interactive modifier.
 3. The computer implemented method of claim 2 further comprising: (a) converting the first snap distance into a fixed number of pixels; (b) determining a first real world distance of the drawing model based on the first zoom level, wherein the available options for the alternative first snap distances are based on the first real world distance; (c) calculating a ratio of the fixed number of pixels to the first real world distance; and (d) determining a second real world distance based on the second zoom level, wherein the first snap distance is recalculated based on the second real world distance and the ratio.
 4. The computer implemented method of claim 3, wherein the first real world distance is determined based on: (a) a three-dimensional (3D) world space position of a viewpoint within the drawing model; and (b) a field of view of the viewpoint.
 5. The computer implemented method of claim 3 further comprising rounding the recalculated first snap distance to a logical value based on the second real world distance.
 6. The computer implemented method of claim 5, wherein; (a) the second real world distance comprises a metric unit of measure; and (b) the recalculated snap distance is rounded to logical values that are base
 10. 7. The computer implemented method of claim 5, wherein; (a) the second real world distance comprises an inch based unit of measure; and (b) the recalculated snap distance is rounded to logical values that are divided into 8 segments.
 8. An apparatus for positioning an object in a computer drawing application in a computer system comprising: (a) a computer having a computer processor, a memory and a display device; (b) an application executed by the computer processor, wherein the application is configured to: (i) display, on the display device, a drawing model, wherein: (1) the drawing model comprises a snap option; (2) the snap option enables a positioning of an object in alignment with grid lines by causing the object to automatically jump to an exact position when the object is moved to within a first snap distance of the exact position; and (3) the drawing model comprises a first zoom level; (ii) conduct a zoom operation that changes the first zoom level to a second zoom level; and (iii) automatically, dynamically, and independently from additional user actions, recalculate the first snap distance based on the second zoom level.
 9. The apparatus of claim 8, wherein the application is further configured to: (a) display, in the drawing model, an interactive snap legend that graphically indicates: (i) the first snap distance; (ii) available options for alternative first snap distances; and (iii) an interactive modifier that modifies the first snap distance in response to user input; and (b) modify the first snap distance in response to user input using the interactive modifier.
 10. The apparatus of claim 9, wherein the application is further configured to: (a) convert the first snap distance into a fixed number of pixels; (b) determine a first real world distance of the drawing model based on the first zoom level, wherein the available options for the alternative first snap distances are based on the first real world distance; (c) calculate a ratio of the fixed number of pixels to the first real world distance; and (d) determine a second real world distance based on the second zoom level, wherein the first snap distance is recalculated based on the second real world distance and the ratio.
 11. The apparatus of claim 10, wherein the first real world distance is determined based on: (a) a three-dimensional (3D) world space position of a viewpoint within the drawing model; and (b) a field of view of the viewpoint.
 12. The apparatus of claim 10, wherein the application is further configured to round the recalculated first snap distance to a logical value based on the second real world distance.
 13. The apparatus of claim 12, wherein; (a) the second real world distance comprises a metric unit of measure; and (b) the recalculated snap distance is rounded to logical values that are base
 10. 14. The apparatus of claim 12, wherein; (a) the second real world distance comprises an inch based unit of measure; and (b) the recalculated snap distance is rounded to logical values that are divided into 8 segments.
 15. A computer readable storage medium encoded with computer program instructions which when accessed by a computer cause the computer to load the program instructions to a memory therein creating a special purpose data structure causing the computer to operate as a specially programmed computer, executing a method of positioning an object, comprising: (a) displaying, on a display device, a drawing model, wherein: (i) the drawing model comprises a snap option; (ii) the snap option enables a positioning of an object in alignment with grid lines by causing the object to automatically jump to an exact position when the object is moved to within a first snap distance of the exact position; and (iii) the drawing model comprises a first zoom level; (b) conducting a zoom operation that changes the first zoom level to a second zoom level; and (c) automatically, dynamically, and independently from additional user actions, recalculating the first snap distance based on the second zoom level.
 16. The computer readable storage medium of claim 15, the method further comprising: (a) displaying, in the drawing model, an interactive snap legend that graphically indicates: (i) the first snap distance; (ii) available options for alternative first snap distances; and (iii) an interactive modifier that modifies the first snap distance in response to user input; and (b) modifying the first snap distance in response to user input using the interactive modifier.
 17. The computer readable storage medium of claim 16 the method further comprising: (a) converting the first snap distance into a fixed number of pixels; (b) determining a first real world distance of the drawing model based on the first zoom level, wherein the available options for the alternative first snap distances are based on the first real world distance; (c) calculating a ratio of the fixed number of pixels to the first real world distance; and (d) determining a second real world distance based on the second zoom level, wherein the first snap distance is recalculated based on the second real world distance and the ratio.
 18. The computer readable storage medium of claim 17, wherein the first real world distance is determined based on: (a) a three-dimensional (3D) world space position of a viewpoint within the drawing model; and (b) a field of view of the viewpoint.
 19. The computer readable storage medium of claim 17 the method further comprising rounding the recalculated first snap distance to a logical value based on the second real world distance.
 20. The computer readable storage medium of claim 19, wherein; (a) the second real world distance comprises a metric unit of measure; and (b) the recalculated snap distance is rounded to logical values that are base
 10. 21. The computer readable storage medium of claim 19, wherein; (a) the second real world distance comprises an inch based unit of measure; and (b) the recalculated snap distance is rounded to logical values that are divided into 8 segments. 